package com.demo.java.OD51_100.OD99;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【一种字符串压缩表示的解压】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145662699
 */
public class OdMain {
    public static void solve(String value) {
        StringBuilder result = new StringBuilder();
        int i = 0;

        while (i < value.length()) {
            char c = value.charAt(i);

            // 检查是否是数字
            if (Character.isDigit(c)) {
                int repeatCount = 0;

                // 获取重复的数字
                while (i < value.length() && Character.isDigit(value.charAt(i))) {
                    repeatCount = repeatCount * 10 + (value.charAt(i) - '0');
                    i++;
                }

                // 如果数字小于3，输出!error
                if (repeatCount < 3) {
                    System.out.println("!error");
                    return;
                }

                // 如果数字后面没有字母，输出!error
                if (i >= value.length() || !Character.isLetter(value.charAt(i))) {
                    System.out.println("!error");
                    return;
                }

                // 获取要重复的字符
                char repeatChar = value.charAt(i);
                // 根据数字进行重复添加
                for (int j = 0; j < repeatCount; j++) {
                    result.append(repeatChar);
                }
                i++; // 跳过字母部分
            } else {
                // 如果当前字符不是数字，直接添加
                result.append(c);
                i++;
            }
        }

        System.out.println(result);
    }

    public static void main(String[] args) {
        try {
            Scanner s = new Scanner(System.in);
            String value = s.nextLine();
            solve(value);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("!error");
        }
    }
}